package xyz.xtt.equity.service;

import jakarta.validation.Valid;
import xyz.xtt.equity.api.dto.GetBenefitPurchaseRecordRequest;
import xyz.xtt.equity.api.dto.GetOnSaleBenefitPackageRequest;
import xyz.xtt.equity.api.dto.SaveBenefitPurchaseUnPayDto;
import xyz.xtt.equity.api.dto.TblBenefitPackageDto;
import xyz.xtt.equity.api.dto.TblBenefitPurchaseRecordDto;
import xyz.xtt.equity.client.request.GetUnPayBenefitPurchaseRecordRequest;
import xyz.xtt.equity.client.request.HandlePayCancelRequest;
import xyz.xtt.equity.client.request.HandlePaySuccessRequest;
import xyz.xtt.equity.vo.NftVipInfoVo;

/**
 * @author dale
 * @date 2025/2/10
 **/
public interface INftVipService {
	NftVipInfoVo queryVipInfo(Long uid);

	TblBenefitPackageDto getOnSaleBenefitPackage(@Valid GetOnSaleBenefitPackageRequest request);

	TblBenefitPurchaseRecordDto getUnPayBenefitPurchaseRecord(Long uid, @Valid GetUnPayBenefitPurchaseRecordRequest request);

	Long saveUnPayBenefitPurchase(Long uid, @Valid SaveBenefitPurchaseUnPayDto saveDto);

	TblBenefitPurchaseRecordDto getBenefitPurchaseRecord(Long uid, @Valid GetBenefitPurchaseRecordRequest request);

	Boolean handlePaySuccess(Long uid, @Valid HandlePaySuccessRequest request);

	Boolean handlePayCancel(Long uid, @Valid HandlePayCancelRequest request);

	void handlePaySuccess(Long businessOrderId);

}
